package bit_exercises.Day13;


/**
 * @author zerorain
 * @date 2022/05/09 19:03
 **/
//第一题 参数解析
//import java.util.*;
//public class Main{
//    public static void main(String[] args){
//        Scanner sc = new Scanner(System.in);
//        String str1 = sc.nextLine();
//        char[] c =str1.toCharArray();
//        int count = 1;
//        for (int i = 0; i < c.length; i++) {
//            ifs (c[i] == '"'){
//                do {
//                    i++;
//                }while (c[i] != '"');
//            }
//            if (c[i] == ' '){
//                count++;
//            }
//        }
//        System.out.println(count);
//        int flag = 1;
//        for (int i = 0; i < c.length; i++) {
//            if(c[i] == '"'){
//                flag ^= 1;
//            }s
//            if (c[i] != ' ' && c[i] != '"'){
//                System.out.print(c[i]);
//            }
//            if (c[i] == ' ' && flag == 0){
//                System.out.print(c[i]);
//            }
//            if(c[i] == ' ' && flag == 1){
//                System.out.println();
//            }
//        }
//
//    }
//}
//第二题
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[] arr = new int[m + 1];
        for (int i = 0; i < m + 1; i++) {
            arr[i] = Integer.MAX_VALUE;
        }
        arr[n] = 0;
        for (int i = n; i < m; i++) {
            if(arr[i] == Integer.MAX_VALUE){
                continue;
            }
            List<Integer> list = div(i);
            for (int j : list){
                if (i + j <= m && arr[i + j] != Integer.MAX_VALUE) {
                    arr[i + j] = Math.min(arr[i + j], arr[i] + 1);
                } else if (i + j <= m){
                    arr[i + j] = arr[i] + 1;
                }
            }
        }
        if (arr[m] == Integer.MAX_VALUE){
            System.out.println(-1);
        } else {
            System.out.println(arr[m]);
        }
    }

    private static List<Integer> div(int n) {
        List<Integer> list = new ArrayList<>();
        for (int i = 2; i*i <= n; i++) {
            if (n % i == 0){
                list.add(i);
                if (n / i != i){
                    list.add(n / i);
                }
            }
        }
        return list;
    }

}